#define _CRT_SECURE_NO_WARNINGS 1
#include"SList.h"

void TestSList1()
{
	SListNode* head = NULL;
	SListPushBack(&head, 11);
	SListPopBack(&head);
	SListPushBack(&head, 10);
	SListPushFront(&head, 1);
	SListPushFront(&head, 2);
	SListPushFront(&head, 3);
	SListPushFront(&head, 4);
	SListPushBack(&head, 12);
	SListPrint(head);
}

void TestSList2()
{
	SListNode* head = NULL;
	
	SListPushFront(&head, 1);
	SListPopFront(&head);
	//SListPopBack(&head);
	SListPushFront(&head, 2);
	SListPushFront(&head, 3);
	SListPushFront(&head, 4);
	SListPopFront(&head);
	SListPushBack(&head, 20);
	SListPushBack(&head, 30); 
	SListPushBack(&head, 40);
	SListPopFront(&head);

	
	/*SListPopFront(&head);
	SListPopFront(&head);
	SListPopFront(&head);*/
	

	
	/*SListPopBack(&head);
	SListPopBack(&head);
	SListPopBack(&head);
	SListPopBack(&head);
	SListPopBack(&head);*/

	//SListPrint(head);
}

void TestSList3()
{
	SListNode* head = NULL;
	SListPushBack(&head, 20);
	SListPushBack(&head, 30);
	SListPushBack(&head, 40);
	SListPushBack(&head, 50);
	SListPushBack(&head, 60);
	SListPushBack(&head, 70);
	SListNode* pos = SListFind(head, 20);
	if (pos)
	{
		//SListInsertAfter(pos, 400);
		//SListInsertAfter(pos, 500);
		//SListEraseAfter(pos);
		//SLInsert(&head, pos, 100);
		//SListEraseAfter(pos);
		//SLErasefront(&head, pos);
		SLErase(&head, pos);
	}
	SListPrint(head);
	SListDestroy(head);
}


int main()
{
	//TestSList1();
	//TestSList2();
	TestSList3();
	system("pause");
	return 0;
}